#include <iostream>
#include <stdio.h>
using namespace std;
typedef struct lnode
{
    int data;
    struct lnode *next;
}*linklist,lnode;
void createlinklist(linklist &l,int n);
void displaylinklist(linklist &l);
void connectlinklist(linklist &a,linklist &b,linklist &c);
int findmid(linklist &l);
int main()
{
    linklist a,b,c;
    a=new lnode;
    b=new lnode;
    c=new lnode;
    int n;
    cin>>n;
    createlinklist(a,n);
    createlinklist(b,n);
   // displaylinklist(a);
   // displaylinklist(b);
    connectlinklist(a,b,c);
    //displaylinklist(c);
    cout<<findmid(c)<<endl;
}
void createlinklist(linklist &l,int n)
{
    int i,e;
    l=new lnode;
    linklist s,r;
    r=l;
    for(i=0;i<n;i++)
    {
        cin>>e;
        s=new lnode;
        s->data=e;
        r->next=s;
        r=s;
    }
    r->next=NULL;
}
void displaylinklist(linklist &l)
{
     linklist p;
     p=l->next;
    while(p!=NULL)
    {
        printf("%d ",p->data);
        p=p->next;
    }
}

void connectlinklist(linklist &a,linklist &b,linklist &c)
{
    linklist pa,pb,r,s;
    c=new lnode;
    r=c;
    pa=a->next;
    pb=b->next;
    if(pa==NULL&&pb==NULL)
        c->next=NULL;
    while (pa!=NULL&&pb!=NULL)
    {
        if(pa->data<=pb->data)
        {
            s=new lnode;
            s->data=pa->data;
            r->next=s;
            r=s;
            pa=pa->next;
        }
        else
        {
            s=new lnode;
            s->data=pb->data;
            r->next=s;
            r=s;
            pb=pb->next;
        }
        }
        if(pa!=NULL)
        {
            r->next=pa;
        }
        if(pb!=NULL)
        {
            r->next=pb;
        }
}
int findmid(linklist &l)
{
    int length=0,i;
    linklist p=l->next;
    while(p!=NULL)
    {
        length++;
        p=p->next;
    }
    length--;
    p=l->next;
    for(i=0;i<length/2;i++)
    {
        p=p->next;
    }
    return p->data;
}
